class Solution {
public:
    vector<vector<int>> merge(vector<vector<int>>& intervals) {
        // 看 第二个在不在 第一个的区间里面 如果在的话就比较第二个end
        // 第二个》第二个就更新 直到 不在第一个区间
        // 假设排序已经完成
        if (intervals.size() == 0) {
            return {};
        }
        sort(intervals.begin(), intervals.end());
        int left = intervals[0][0];
        int right = intervals[0][1];
        int i = 0;
        vector<vector<int>> rres;
        while (i < intervals.size() - 1) {
            i++;
            if (intervals[i][0] <= right) {
                if (intervals[i][1] > right)
                    right = intervals[i][1];
            } else if (intervals[i][0] > right) {
                vector<int> res = {left, right};
                rres.push_back(res);
                left = intervals[i][0];
                right = intervals[i][1];
            }
        }
        vector<int> res = {left, right};
        rres.push_back(res);
     
        return rres;
    }
};
